package modelo.entidades;

import java.util.List;

import modelo.datos.utils.ListaFacturas;

public abstract class Cliente {
    private String nombre;
    private String nif;
    private Direccion direccion;

    public enum TipoTarifa {
	NORMAL, NOCTURNA, REDUCIDA, SUPERREDUCIDA
    }

    private TipoTarifa tarifa;
    private List<Factura> listaFacturas;

    public Cliente() {
	super();
    }

    public Cliente(String nombre, String nif, Direccion direccion,
	    TipoTarifa tarifa) {
	super();
	this.nombre = nombre;
	this.nif = nif;
	this.direccion = direccion;
	this.tarifa = tarifa;
    }

    public abstract void actualiza(Cliente cliente);

    public void addFactura(Factura factura) {
	listaFacturas.add(factura);
    }

    public String getNombre() {
	return nombre;
    }

    public void setNombre(String nombre) {
	this.nombre = nombre;
    }

    public String getNif() {
	return nif;
    }

    public void setNif(String nif) {
	this.nif = nif;
    }

    public Direccion getDireccion() {
	return direccion;
    }

    public void setDireccion(Direccion direccion) {
	this.direccion = direccion;
    }

    public TipoTarifa getTarifa() {
	return tarifa;
    }

    public void setTarifa(TipoTarifa tarifa) {
	this.tarifa = tarifa;
    }

    public ListaFacturas getListaFacturas() {
	return new ListaFacturas(listaFacturas);
    }

}
